#ifndef _WDS_BULLET_MANAGER_H_
#define _WDS_BULLET_MANAGER_H_

#include "wds_bullet.h"
#include "math/vec2.h"

class WDSBulletCollection;

class WDSBulletManager
{

public:


	struct Skill
	{

		Skill();

		float m_SilverBullet;
		float m_BulletSpeed; 	
		float m_IONGunMaster;
		
	};


	static WDSBulletManager&				Instance();
		

	void									Render(const math::Vec2& Offset,float Scale);
	void									RenderDebug(const math::Vec2& Offset,float Scale);
	void									Tick(float dt, const math::Vec2& Offset);

	void									Clear();
	void									DieAll();
	
	WDSBullet*								Shoot(		WDSBullet::BULLET_TYPES Type,
														WDSLifeObject* pShooter,
														const math::Vec2& ShootPos,														
														float Degree,																									
														int SoundSFXIndex
														);

	WDSBulletManager::Skill*				GetSkill() { return &m_Skill; };

protected:

	WDSBulletManager();
	~WDSBulletManager();

	WDSBulletCollection*					m_pBulletCollections[WDSBullet::BULLET_TYPE_C];	
	WDSBulletManager::Skill					m_Skill;

};

#endif